package com.cskaoyan.javase.oop1._17access._2member;

/**
 * 对于类中成员和构造器的访问权限
 * 访问权限修饰符总位于它们定义的开头位置(惯例)，可以使用的修饰符有4种：
 *
 * public：任意类均能访问，实际就是没有限制访问权限。
 * protected：同包中的其他类都可以访问，不同包下必须是子类才能够访问。
 * （缺省的）什么关键字都不写，表示同包中的其他类都可以访问。
 * private：仅对自身类中的其他成员可见。
 *
 * 注意事项:
 *      1.类的访问权限要大于类中结构
 *          如果无法访问类,更不谈访问类中结构
 *
 *      2.私有意味着在类的外部是无法直接访问的，但是在类的内部，只要还是这个类，都是可以随意访问的。
 *
 *
 * @since 15:53
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class TestMemberA {
    private int num;
    int num2;
    public int num3;

    void test() {
    }

    private void test2() {
    }

    public static void testStatic() {
    }

    public void method(TestMemberA a){
        System.out.println(this.num);
        System.out.println(a.num);
    }

    /*
        构造器私有化了,意味着外界无法使用该构造器,外界就不能new对象了
        这时,该类,不存在任何一个构造器可以被外界使用
        所以该类无法在外界new创建对象了(常规手段下)
      */
    private TestMemberA() {
    }
}

class TestMemberB {
    private int num;
    int num2;
    public int num3;

    void test() {
    }

    private void test2() {
    }

    public static void testStatic() {
    }

    public TestMemberB() {
    }
}

